package com.zengfa.task.api.model;

import lombok.Data;

@Data
public class ReturnDTO<T> {
    /**
     * 返回码
     */
    private String code;
    /**
     * 返回信息
     */
    private String msg;
    /**
     * 返回数据
     */
    private T data;


    /**
     * 构造函数.
     */
    public ReturnDTO() {
    }

    /**
     * 成功返回值用简洁方式..
     *
     * @param data 返回的数据对像.
     * @return 返回值数据传输对象.
     */
    public static <T> ReturnDTO<T> oK(T data) {
        ReturnDTO<T> dto=oK();
        dto.setData(data);
        return dto;
    }
    /**
         * 成功返回值用简洁方式..
     *
     * @param data 返回的数据对像.
     * @return 返回值数据传输对象.
     */
    public static <T> ReturnDTO<T> oK() {
        ReturnDTO<T> dto = new ReturnDTO<>();
        dto.setCode("200");
        return dto;
    }
    
    /**
     * 成功返回值用简洁方式..
     *
     * @param data 返回的数据对像.
     * @param msg  返回的数据信息.
     * @return 返回值数据传输对象.
     */
    public static ReturnDTO<Object> oK(Object data, String msg) {
        ReturnDTO<Object> dto = new ReturnDTO<>();
        dto.setCode("200");
        dto.setMsg(msg);
        dto.setData(data);
        return dto;
    }

    /**
     * 失败返回值用简洁方式..
     *
     * @param msg 返回的数据异常信息.
     * @return 返回值数据传输对象.
     */
    public static ReturnDTO<String> NO(String msg) {
        ReturnDTO<String> dto = new ReturnDTO<>();
        dto.setCode("500");
        dto.setMsg(msg);
        return dto;
    }

}
